iT邦幫忙

0

Python學習筆記: 中文姓名自動產生器,源自Richy Li

  • 分享至 

  • xImage
  •  

本文同步發表於小弟自架網站:微確幸資訊站

本文姓名資料源自於「中文姓名產生器」網站,連結如下:

中文姓名產生器

這個網站提供了很棒的中文姓名自動產生的資料,甚至一次最多能產生出2萬筆中文姓名,
應該都符合大部份的使用者的需求了。

這個網站很特別的是,每次連上去,網頁就會自動產生100筆中文姓名。
只要重新整理一次,就會產生100筆中文姓名,透過這樣的網站特性,
我解析了網頁,寫了一個小程式來依需求產生中文姓名(依100的倍數產生)。

這裏要拜託大家不要用程式去造成網站的負擔!!

以下為程式碼:

import requests
import pandas as pd

# 設定time為獲取中文姓名100筆的倍數。time=3,就是300筆的意思。
times = 2
cnames = []
for x in range(times):
    url = 'http://www.richyli.com/name/index.asp'
    r = requests.get(url)
    r.encoding = 'big5'
    
    # 將網頁中的資料以分行的方式存成文字檔
    result = r.text.splitlines()
    
    # 114是中文姓名開始的列,找到最後一個「、」,設定成為字串的切片位置。
    char_index = result[114].rfind("、")
    temp = result[114][:char_index]
    
    # 將temp的100筆姓名新增到cnames中
    cnames.append(temp)

# 將每100筆姓名的list加一個「、」,再組合成字串存到my_names中
my_names = "、".join(str(x) for x in cnames)
print(my_names)

https://ithelp.ithome.com.tw/upload/images/20230301/20122335G0BKBoW65h.jpg

# 將上面的姓名生成dataframe
df_name = pd.DataFrame(my_names.split('、'), columns=['姓名'])
print(f'中文姓名筆數:{len(df_name)}')
df_name

https://ithelp.ithome.com.tw/upload/images/20230301/20122335Vx8ISMnT6y.jpg

# 讀取111學年度大專校院一覽表- 教育部
url_s = 'https://ulist.moe.gov.tw/Download/StartDownload?FileName=ulistdepartmentlist_college.xlsx'
df_school = pd.read_excel(url_s, skiprows=1)
print(f'大專校院系所數:{len(df_school)}')
df_school.head()

https://ithelp.ithome.com.tw/upload/images/20230301/20122335K4T027iIdF.jpg

# 隨機抽取10個學校、系所和姓名結合後,做成一個dataframe
df = (pd.concat([df_school[['學校名稱', '系所名稱']]
                 .sample(n=10).reset_index(drop=True),
                 df_name.sample(n=10).reset_index(drop=True)], axis=1)
     )
df

https://ithelp.ithome.com.tw/upload/images/20230301/20122335nyunxdLbgl.jpg

以上就完成10個抽樣學校、系所及姓名的組合!!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言